<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
  <title>Soot: a Java Optimization Framework</title>
</head>
<body
 style="color: rgb(0, 0, 0); background-color: rgb(243, 243, 243); background-image: url(background6.gif);"
 link="#0000cc">
<table border="0" cellpadding="0" cellspacing="3">
  <tbody>
    <tr>
<!--LeftHandTable--> <td rowspace="1" valign="top" width="160"
 align="left">
      <p><font size="+1" face="helvetica,arial"><b>Soot Home</b></font>
      </p>
      <p><a href="#introduction"><font size="+0" face="helvetica,arial">Introduction</font></a><br>
      <a href="#obtaining"><font size="+0" face="helvetica,arial">Obtaining
Soot</font></a><br>
      <a href="#resources"><font size="+0" face="helvetica,arial">Resources</font></a><br>
      <a href="#credits"><font size="+0" face="helvetica,arial">Credits</font></a><br>
      <a href="#users"><font size="+0" face="helvetica,arial">Soot Users</font></a><br>
      </p>
      <p><a href="http://www.sable.mcgill.ca">Sable Home</a> </p>
      </td>
<!--ActualContents--> <td valign="top" align="left">
      <center><a name="top"><b><font size="+2" face="helvetica,arial">Soot:
a
Java
Optimization
Framework</font></b></a></center>
      <br>
      <center> <a name="top"><b><font size="+1" face="helvetica,arial">Latest
version:
2.5.0
(January
22nd,
2012)</font></b></a></center>
      <br>
      <br>
      <br>
Need help using Soot? See the Soot <a href="tutorial/index.html">
tutorials</a>.
Or have a loot at Arni Einarsson's and Janus Dam Nielsen's marvelous <a
 href="http://www.brics.dk/SootGuide/">Soot Survivor's guide</a>! <br>
      <br>
<!--Introduction--> <a name="introduction"> </a>
      <table width="100%">
        <tbody>
          <tr>
            <td width="97%" align="left"><b><font size="+1"
 face="helvetica,arial">Introduction</font></b></td>
            <td width="3%" align="left"><font size="-2"><a href="#top">top</a></font></td>
          </tr>
        </tbody>
      </table>
      <blockquote>Soot is a Java optimization framework. It provides
four intermediate
representations for analyzing and transforming Java bytecode:
        <ol>
          <li><b>Baf</b>: a streamlined representation of bytecode
which is simple to
manipulate. </li>
          <li><b>Jimple</b>: a typed 3-address intermediate
representation suitable for
optimization. </li>
          <li><b>Shimple</b>: an SSA variation of Jimple. </li>
          <li><b>Grimp</b>: an aggregated version of Jimple suitable
for decompilation and
code inspection. </li>
        </ol>
Soot can be used as a stand alone tool to optimize or inspect class
files, as well
as a framework to develop optimizations or transformations on Java
bytecode.
        <p>Soot is free software and is licensed under the <a
 href="http://www.gnu.org/copyleft/lesser.html">GNU Lesser General
Public
License</a>. </p>
      </blockquote>
      <blockquote>
        <h4>Release Status:</h4>
        <p>The Soot Framework is an evolving research project. Our goal
is to produce a
robust, easy-to-use research framework for optimizing Java bytecode. </p>
        <p>The latest release is version 2.5.0. The new features are
described in detail here: <a href="CHANGES">new features</a>. </p>
      </blockquote>
      <blockquote>
        <h4>Eclipse Plugin:</h4>
Since version 2.0, Soot includes a <a href="eclipse/index.html">plugin</a>
that makes it
possible to use Soot from <a href="http://www.eclipse.org">Eclipse</a>.
We
have
a
separate


        <a href="eclipse/index.html">web page with
instructions for
installing and using the plugin.</a> <br>
        <p> You may also want to develop Soot within the Eclipse
environment. Instructions for setting up Soot within Eclipse can be
found here: <a href="soot_in_eclipse_howto.html">Setting Up Soot in
Eclipse</a>.</p>
This is the plugins's update site:<br>
        <pre style="font-weight: bold;">http://www.sable.mcgill.ca/soot/eclipse/updates/</pre>
      </blockquote>
      <a name="obtaining"> </a>
      <table width="100%">
        <tbody>
          <tr>
            <td width="97%" align="left"><b><font size="+1"
 face="helvetica,arial">Obtaining Soot</font></b></td>
            <td width="3%" align="left"><font size="-2"><a href="#top">top</a></font></td>
          </tr>
        </tbody>
      </table>
      <blockquote>
        <h4>Downloads:</h4>
Get Soot from our download page a <a href="soot_download.html">Soot
Downloads</a>.
        <p>You can simply run Soot using the following command:</p>
        <p><tt>java -jar soot-2.5.0.jar </tt></p>
        <p>To get help on the command-line options, use:</p>
        <p><tt>java -jar soot-2.5.0.jar -help<br>
        <br>
        </tt>The <a href="tutorial/usage">usage document</a> gives
more information about these options.<br>
        </p>
        <p>Note that Soot requires at least JDK 1.5.
The Eclipse plugin requires at least JDK 1.5.
Soot now has virtually complete support for JDK 1.5.
(Missing is support for package-level and local-variable annotations.)</p>
      </blockquote>
      <blockquote>
        <h4>Repository Access:</h4>
        <p>We are using Git on Github for version control.</p>
        <a href="https://github.com/soot-oss/soot">Please check the
instructions on Github to see how to check out Soot.</a><br>
        <br>
In order to compile Soot from source, you will also need a
copy of
the Jasmin and Polyglot classes, available from the <a
 href="soot_download.html">download page</a>.
        <p>From time to time we update Jasmin. If something Jasmin
related seems broken you may need to get the latest Jasmin from the <a
 href="https://github.com/Sable/jasmin">Jasmin Github repository</a>.</p>
        <p>You can also browse our latest version of the Soot
repository <a href="https://github.com/soot-oss/soot/commits/master">on
Github as well</a>.</p>
      </blockquote>
      <blockquote>
        <h4>Nightly Builds:</h4>
        <p>With release 2.2.1 we started to build Soot and Jasmin every
night. To get the latest nightly build see: <a
 href="http://vandyk.st.informatik.tu-darmstadt.de/abc/">Nightly Builds</a>.

        </p>
      </blockquote>
<!--Documentation--> <a name="resources"> </a>
      <table width="100%">
        <tbody>
          <tr>
            <td width="97%" align="left"><b><font size="+1"
 face="helvetica,arial">Resources</font></b></td>
            <td width="3%" align="left"><font size="-2"><a href="#top">top</a></font></td>
          </tr>
        </tbody>
      </table>
      <blockquote>
        <h4>Documentation:</h4>
We have developed a number of documents describing Soot. Your main
current sources of information are:
        <ul>
          <li>Our <a href="http://www.sable.mcgill.ca/publications">publication
page</a> has several conference papers describing Soot. </li>
          <li>A set of <a href="tutorial/">tutorials</a> describing
Soot, both as a Java application optimizer and
as a compiler framework. </li>
          <li><a href="doc/index.html">The Soot API.</a> Most of the
functionality is self-explanatory. This API is included in the Soot
distribution. </li>
          <li>The Soot source itself. It is full of examples on how to
use the API. </li>
        </ul>
      </blockquote>
      <blockquote>
        <h4>Mailing List:</h4>
        <p>If you have questions about Soot use the <a
 href="http://www.sable.mcgill.ca/mailman/listinfo/soot-list/">Soot
Mailing List</a>. <b><i>Note:</i></b> You must subscribe before
posting and you must
post from the same address with which you used to subscribe.</p>
        <p>You can also <a
 href="http://www.sable.mcgill.ca/pipermail/soot-list/">view the
recent list archives</a>.
<!--or <a href="http://www.sable.mcgill.ca/listarchives/old_publicarchives/soot-list/">view the old list archives</a>.--></p>
      </blockquote>
      <blockquote>
        <h4>Wiki:</h4>
        <li>See the new <a
 href="https://svn.sable.mcgill.ca/wiki/index.cgi/SootProject">Soot Wiki</a>
for up-to-date information. The Soot team will be using this site for
discussing upcoming work, so if you would like to know what is going on
look there. </li>
      </blockquote>
      <blockquote>
        <h4>Bugzilla:</h4>
        <li>Use new <a href="https://svn.sable.mcgill.ca/bugzilla/">Soot
Bugzilla</a>. We encourage you to add any Soot bugs there. </li>
      </blockquote>
<!--Credits--> <a name="credits"> </a>
      <table width="100%">
        <tbody>
          <tr>
            <td width="97%" align="left"><b><font size="+1"
 face="helvetica,arial">Credits</font></b></td>
            <td width="3%" align="left"><font size="-2"><a href="#top">top</a></font></td>
          </tr>
        </tbody>
      </table>
      <blockquote> Click <a href="./credits">here</a> for the complete
list of contributors and acknowledgements. </blockquote>
<!--Soot Users--> <a name="users"> </a>
      <table width="100%">
        <tbody>
          <tr>
            <td width="97%" align="left"><b><font size="+1"
 face="helvetica,arial">Soot Users</font></b></td>
            <td width="3%" align="left"><font size="-2"><a href="#top">top</a></font></td>
          </tr>
        </tbody>
      </table>
      <blockquote>
        <p>We maintain a <a
 href="https://svn.sable.mcgill.ca/wiki/index.cgi/SootUsers">list of
people and projects that are making
use of Soot</a>. If you are not on the list please add yourself!</p>
        <br>
      </blockquote>
      </td>
    </tr>
  </tbody>
</table>
</body>
</html>
